module queue_of_da_q_aa;

       typedef int qint_t[$];

       // dynamic array of queues
       qint_t DAq[]; // same as int DAq[][$];

       // queue of queues
       qint_t Qq[$]; // same as int Qq[$][$];

       // associative array of queues
       qint_t AAq[string]; // same as int AAq[string][$];

       initial begin
          // Dynamic array of 4 queues
          DAq = new[4];
          // Push something onto one of the queues
          DAq[2].push_back(1);
          // initialize another queue with three entries
          DAq[0] = {1,2,3};
          $display("%d",DAq);

          // Queue of queues -two
          Qq= {{1,2},{3,4,5}};
          Qq.push_back(qint_t'{6,7});
          Qq[2].push_back(1);
          $display("%d",Qq);

          // Associative array of queues
          AAq["one"] = {};
          AAq["two"] = {1,2,3,4};
          AAq["one"].push_back(5);
          $display("%d",AAq);
       end
          
endmodule
